home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / X11 / extensions / lbxdeltastr.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  3KB  |  106 lines

  1. /* $Xorg: lbxdeltastr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
  2. /*
  3.  * Copyright 1993 Network Computing Devices
  4.  *
  5.  * Permission to use, copy, modify, distribute, and sell this software and its
  6.  * documentation for any purpose is hereby granted without fee, provided that
  7.  * the above copyright notice appear in all copies and that both that
  8.  * copyright notice and this permission notice appear in supporting
  9.  * documentation, and that the name of NCD. not be used in advertising or
  10.  * publicity pertaining to distribution of the software without specific,
  11.  * written prior permission.  NCD. makes no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
  17.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  19.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  20.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21.  *
  22.  */
  23.  
  24. #ifndef LBX_DELTA_STRUCT_H
  25. #define LBX_DELTA_STRUCT_H
  26.  
  27. #define MIN_CACHEABLE_LEN        8
  28.  
  29. #define DELTA_CACHEABLE(pcache, len)    \
  30.     ((len) > MIN_CACHEABLE_LEN && (len) <= (pcache)->maxDeltasize)
  31.  
  32. /*
  33.  * An entry in the delta compactor cache
  34.  */
  35. typedef struct _LBXDeltaElem {
  36.     int            length;
  37.     unsigned char    *buf;
  38. } LBXDeltaElemRec, *LBXDeltaElemPtr;
  39.  
  40.  
  41. /*
  42.  * Delta compactor cache
  43.  */
  44. typedef struct _LBXDeltas {
  45.     unsigned short    nDeltas;
  46.     unsigned short    maxDeltasize;
  47.     LBXDeltaElemPtr    deltas;
  48.     unsigned short    nextDelta;
  49.     unsigned short    activeDeltas;    /* only needed for outgoing */
  50. } LBXDeltasRec, *LBXDeltasPtr;
  51.  
  52.  
  53. /*
  54.  * Motion delta cache
  55.  */
  56.  
  57. typedef struct {
  58.     BYTE swapped;
  59.     BYTE detail;
  60.     CARD16 sequenceNumber B16;
  61.     Time time B32;
  62.     Window root B32, event B32, child B32;
  63.     INT16 rootX B16, rootY B16, eventX B16, eventY B16;
  64.     KeyButMask state B16;
  65.     BOOL sameScreen;        
  66. } lbxMotionCache;
  67.  
  68.  
  69. /*
  70.  * Motion delta events
  71.  */
  72.  
  73. typedef struct {
  74.     BYTE type;        /* always eventBase + LbxQuickMotionDeltaEvent */
  75.     CARD8 deltaTime;
  76.     INT8 deltaX;
  77.     INT8 deltaY;
  78. } lbxQuickMotionDeltaEvent;
  79. #define sz_lbxQuickMotionDeltaEvent 4
  80.  
  81. typedef struct {
  82.     BYTE type;        /* always eventBase + LbxEvent */
  83.     BYTE lbxType;    /* LbxMotionDeltaEvent */
  84.     INT8 deltaX;
  85.     INT8 deltaY;
  86.     CARD16 deltaTime B16;
  87.     CARD16 deltaSequence B16;
  88. } lbxMotionDeltaEvent;
  89. #define sz_lbxMotionDeltaEvent 8
  90.  
  91. extern int LBXInitDeltaCache ( LBXDeltasPtr pcache, int nDeltas, 
  92.                    int maxDeltasize );
  93. extern void LBXFreeDeltaCache ( LBXDeltasPtr pcache );
  94. extern int LBXDeltaMinDiffs ( LBXDeltasPtr pcache, unsigned char *inmsg, 
  95.                   int inmsglen, int maxdiff, int *pindex );
  96. extern void LBXEncodeDelta ( LBXDeltasPtr pcache, unsigned char *inmsg, 
  97.                  int ndiff, int index, unsigned char *buf );
  98. extern int LBXDecodeDelta ( LBXDeltasPtr pcache, xLbxDiffItem *deltas, 
  99.                 int ndiff, int index, unsigned char **buf );
  100. extern void LBXAddDeltaOut ( LBXDeltasPtr pcache, unsigned char *inmsg, 
  101.                  int inmsglen );
  102. extern void LBXAddDeltaIn ( LBXDeltasPtr pcache, unsigned char *inmsg, 
  103.                 int inmsglen );
  104.  
  105. #endif /* LBX_DELTA_STRUCT_H */
  106.